Fix up start_info_t magic string to match the format of
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Wed, 16 Nov 2005 11:23:17 +0000 (12:23 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Wed, 16 Nov 2005 11:23:17 +0000 (12:23 +0100)
XENVER_capabilities strings.

Signed-off-by: Keir Fraser <keir@xensource.com>
tools/libxc/xc_linux_build.c
xen/arch/ia64/xen/domain.c
xen/arch/x86/domain_build.c
xen/include/public/xen.h

index fc6fc9d9048be7de1aaa400e3dff5ed8fc7807a6..d5c784c0190ef49a75d5e28ab06c1a69f726ffe4 100644 (file)
@@ -351,7 +351,7 @@ static int setup_guest(int xc_handle,
         xc_handle, dom, PAGE_SIZE, PROT_READ|PROT_WRITE, page_array[0]);
     memset(start_info, 0, sizeof(*start_info));
     rc = xc_version(xc_handle, XENVER_version, NULL);
-    sprintf(start_info->magic, "xen-%i.%i", rc >> 16, rc & (0xFFFF));
+    sprintf(start_info->magic, "xen-%i.%i-ia64", rc >> 16, rc & (0xFFFF));
     start_info->flags        = flags;
     start_info->store_mfn    = nr_pages - 2;
     start_info->store_evtchn = store_evtchn;
@@ -628,7 +628,9 @@ static int setup_guest(int xc_handle,
         page_array[(vstartinfo_start-dsi.v_start)>>PAGE_SHIFT]);
     memset(start_info, 0, sizeof(*start_info));
     rc = xc_version(xc_handle, XENVER_version, NULL);
-    sprintf(start_info->magic, "xen-%i.%i", rc >> 16, rc & (0xFFFF));
+    sprintf(start_info->magic, "xen-%i.%i-x86_%d%s",
+            rc >> 16, rc & (0xFFFF), sizeof(long)*8,
+            dsi.pae_kernel ? "p" : "");
     start_info->nr_pages     = nr_pages;
     start_info->shared_info  = shared_info_frame << PAGE_SHIFT;
     start_info->flags        = flags;
index 15920ca8a02768e8d3f9793e8b6d8b431442bd9f..416c096432195232a2d57f1e143f3583fec17435 100644 (file)
@@ -952,7 +952,7 @@ int construct_dom0(struct domain *d,
        si = (start_info_t *)alloc_xenheap_page();
        memset(si, 0, PAGE_SIZE);
        d->shared_info->arch.start_info_pfn = __pa(si) >> PAGE_SHIFT;
-       sprintf(si->magic, "Xen-%i.%i", XEN_VERSION, XEN_SUBVERSION);
+       sprintf(si->magic, "xen-%i.%i-ia64", XEN_VERSION, XEN_SUBVERSION);
 
 #if 0
        si->nr_pages     = d->tot_pages;
index d3b8a7a4d0aa83560e7caa23080263e36bb54ca0..b83ea2c47c1b7d0e028ec31d09f9d3a876afcf85 100644 (file)
@@ -639,7 +639,8 @@ int construct_dom0(struct domain *d,
     si->pt_base      = vpt_start;
     si->nr_pt_frames = nr_pt_pages;
     si->mfn_list     = vphysmap_start;
-    sprintf(si->magic, "Xen-%i.%i", XEN_VERSION, XEN_SUBVERSION);
+    sprintf(si->magic, "xen-%i.%i-x86_%d%s",
+            XEN_VERSION, XEN_SUBVERSION, BITS_PER_LONG, xen_pae ? "p" : "");
 
     /* Write the phys->machine and machine->phys table entries. */
     for ( pfn = 0; pfn < d->tot_pages; pfn++ )
index 51697ef15acc41b72f503e3afc92900ff4137a0f..2259fc3ba007092cad9c50da21a35d8197ffcd2f 100644 (file)
@@ -408,7 +408,7 @@ typedef struct shared_info {
 #define MAX_GUEST_CMDLINE 1024
 typedef struct start_info {
     /* THE FOLLOWING ARE FILLED IN BOTH ON INITIAL BOOT AND ON RESUME.    */
-    char magic[32];             /* "Xen-<version>.<subversion>". */
+    char magic[32];             /* "xen-<version>-<platform>".            */
     unsigned long nr_pages;     /* Total pages allocated to this domain.  */
     unsigned long shared_info;  /* MACHINE address of shared info struct. */
     uint32_t flags;             /* SIF_xxx flags.                         */